home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1996 #15 / Monster Media Number 15 (Monster Media)(July 1996).ISO / bbs_util / bsrc_260.zip / INCLUDE.ZIP / WNFOSSIL.H < prev    next >
C/C++ Source or Header  |  1996-03-26  |  5KB  |  153 lines

  1. //---------------------------------------------------------------------------
  2. //
  3. //  Module:   fossil.h
  4. //
  5. //  Description:
  6. //     Public header file
  7. //
  8. //  Development Team:
  9. //     Bryan A. Woodruff
  10. //
  11. //  History:   Date       Author      Comment
  12. //
  13. //---------------------------------------------------------------------------
  14. //
  15. //  THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
  16. //  KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
  17. //  IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR
  18. //  PURPOSE.
  19. //
  20. //  Copyright (c) 1994-1996 Bryan A. Woodruff.  All Rights Reserved.
  21. //
  22. //---------------------------------------------------------------------------
  23.  
  24. #if !defined( _WNFOSCTL_ )
  25.  
  26. #include <pshpack1.h>
  27.  
  28. //---------------------------------------------------------------------------
  29. //---------------------------------------------------------------------------
  30.  
  31. // I/O Control Support... definitions borrowed from NTDDK.H
  32.  
  33. #if !defined( CTL_CODE )
  34. #define CTL_CODE( DeviceType, Function, Method, Access ) (                 \
  35.     ((DeviceType) << 16) | ((Access) << 14) | ((Function) << 2) | (Method) \
  36. )
  37. #define FILE_DEVICE_UNKNOWN 0x00000022
  38.  
  39. //
  40. // Define the method codes for how buffers are passed for I/O and FS controls
  41. //
  42.  
  43. #define METHOD_BUFFERED                 0
  44. #define METHOD_IN_DIRECT                1
  45. #define METHOD_OUT_DIRECT               2
  46. #define METHOD_NEITHER                  3
  47.  
  48. //
  49. // Define the access check value for any access
  50. //
  51. //
  52. // The FILE_READ_ACCESS and FILE_WRITE_ACCESS constants are also defined in
  53. // ntioapi.h as FILE_READ_DATA and FILE_WRITE_DATA. The values for these
  54. // constants *MUST* always be in sync.
  55. //
  56.  
  57.  
  58. #define FILE_ANY_ACCESS                 0
  59. #define FILE_READ_ACCESS          ( 0x0001 )    // file & pipe
  60. #define FILE_WRITE_ACCESS         ( 0x0002 )    // file & pipe
  61.  
  62. #endif
  63.  
  64. #define IOCTL_FOSSIL_BASE            FILE_DEVICE_UNKNOWN
  65. #define IOCTL_FOSSIL_RESERVED        CTL_CODE(IOCTL_FOSSIL_BASE, 0x000, METHOD_BUFFERED, FILE_WRITE_ACCESS | FILE_READ_ACCESS)
  66. #define IOCTL_FOSSIL_GET_VERSION     CTL_CODE(IOCTL_FOSSIL_BASE, 0x001, METHOD_BUFFERED, FILE_READ_ACCESS)
  67. #define IOCTL_FOSSIL_ACTIVATE_PORT   CTL_CODE(IOCTL_FOSSIL_BASE, 0x002, METHOD_BUFFERED, FILE_WRITE_ACCESS | FILE_READ_ACCESS)
  68. #define IOCTL_FOSSIL_DEACTIVATE_PORT CTL_CODE(IOCTL_FOSSIL_BASE, 0x003, METHOD_BUFFERED, FILE_WRITE_ACCESS | FILE_READ_ACCESS)
  69. #define IOCTL_FOSSIL_CONTROL         CTL_CODE(IOCTL_FOSSIL_BASE, 0x004, METHOD_BUFFERED, FILE_WRITE_ACCESS | FILE_READ_ACCESS)
  70. #define IOCTL_FOSSIL_GETPORTINFO     CTL_CODE(IOCTL_FOSSIL_BASE, 0x005, METHOD_BUFFERED, FILE_READ_ACCESS)
  71. #define IOCTL_FOSSIL_GETPORTSTATUS   CTL_CODE(IOCTL_FOSSIL_BASE, 0x006, METHOD_BUFFERED, FILE_READ_ACCESS)
  72. #define IOCTL_FOSSIL_SETPARAMS       CTL_CODE(IOCTL_FOSSIL_BASE, 0x007, METHOD_BUFFERED, FILE_WRITE_ACCESS)
  73. #define IOCTL_FOSSIL_BLOCKXMIT       CTL_CODE(IOCTL_FOSSIL_BASE, 0x008, METHOD_BUFFERED, FILE_WRITE_ACCESS)
  74. #define IOCTL_FOSSIL_BLOCKRECV       CTL_CODE(IOCTL_FOSSIL_BASE, 0x009, METHOD_BUFFERED, FILE_READ_ACCESS)
  75.  
  76. typedef struct
  77. {
  78.    WORD   wSignature ;
  79.    BYTE   bVerMajor ;
  80.    BYTE   bVerMinor ;
  81.    ULONG  cbReceiveBuffer ;
  82.    ULONG  cbReceiveFree ;
  83.    ULONG  cbTransmitBuffer ;
  84.    ULONG  cbTransmitFree ;
  85.  
  86. } FOSSIL_INFORMATION, *PFOSSIL_INFORMATION ;
  87.  
  88. typedef struct
  89. {
  90.    ULONG  ulPortId ;
  91.    ULONG  ulControl ;
  92.    ULONG  ulParam ;
  93.  
  94. } FOSSIL_CONTROL, *PFOSSIL_CONTROL ;
  95.  
  96. #define FOSSIL_CONTROL_DTR               0x0001
  97.  
  98. #define FOSSIL_CONTROL_FLOWCTL           0x0002
  99. #define FOSSIL_FLOWCTLF_INX              0x01
  100. #define FOSSIL_FLOWCTLF_RTSCTS           0x02
  101. #define FOSSIL_FLOWCTLF_OUTX             0x08
  102.  
  103. #define FOSSIL_CONTROL_BREAK             0x0003
  104.  
  105. #define FOSSIL_CONTROL_PURGE             0x0004
  106. #define FOSSIL_PURGE_TRANSMIT            0x00
  107. #define FOSSIL_PURGE_RECEIVE             0x01
  108.  
  109. #define FOSSIL_STATUSF_INQ_DATA          0x0100
  110. #define FOSSIL_STATUSF_OUTQ_ROOM         0x2000
  111. #define FOSSIL_STATUSF_OUTQ_EMPTY        0x4000
  112. #define FOSSIL_STATUSF_TIMEOUT           0x8000
  113. #define FOSSIL_STATUSF_MS_CTS_ON         0x0010
  114. #define FOSSIL_STATUSF_MS_DSR_ON         0x0020
  115. #define FOSSIL_STATUSF_MS_RING_ON        0x0040
  116. #define FOSSIL_STATUSF_MS_RLSD_ON        0x0080
  117.  
  118. typedef struct
  119. {
  120.    ULONG  ulPortId ;
  121.    ULONG  BaudRate ;
  122.    ULONG  ByteSize ;
  123.    ULONG  StopBits ;
  124.    ULONG  Parity ;
  125.  
  126. } FOSSIL_SETPARAMS, *PFOSSIL_SETPARAMS ;
  127.  
  128. typedef struct
  129. {
  130.    ULONG  ulPortId ;
  131.    PCHAR  pchBuffer ;
  132.    ULONG  cbBuffer ;
  133.  
  134. } FOSSIL_BUFFER, *PFOSSIL_BUFFER ;
  135.  
  136. //---------------------------------------------------------------------------
  137. //---------------------------------------------------------------------------
  138.  
  139. #include <poppack.h>
  140.  
  141. #endif
  142.  
  143. // API support
  144.  
  145. #define FOSSIL_API_GET_VERSION    0x0000
  146. #define FOSSIL_API_UNLOCK_PORT    0x0001
  147. #define FOSSIL_API_LOCK_PORT      0x0002
  148.  
  149. //---------------------------------------------------------------------------
  150. //  End of File: fossil.h
  151. //---------------------------------------------------------------------------
  152.  
  153.